package com.promote.algorithm;

import java.util.Arrays;

/**
 * @ClassName IsAnagram
 * Description 有效的字母异位词
 * @Author LiZiHao
 * Date 2022/3/11 11:23
 * @Version 1.0
 **/
public class IsAnagram {
    /**
     * 若 s 和 t 中每个字符出现的次数都相同，则称 s 和 t 互为字母异位词。
     */

    public boolean isAnagram(String s,String t) {
        //先判断两个字符的长度是否一致
        if (s.length() != t.length()) {
            return false;
        }

        int[] letterCount = new int[26];

        //获取两个字符串中每个字符出现的次数

        for (int i = 0; i < s.length(); i++) {
            letterCount[s.charAt(i) - 'a']++;
        }

        //对比另外一个字符出现的次数是否相同
        for (int i = 0; i < t.length(); i++) {
            letterCount[t.charAt(i) - 'a']--;
        }

        for (int count : letterCount) {
            if (count!=0) {
                return false;
            }
        }
        return true;
    }

    public boolean isAnagram1(String s,String t) {

        //对两个字符串排序
        char[] arrays = s.toCharArray();
        char[] arrayt = t.toCharArray();

        Arrays.sort(arrays);
        Arrays.sort(arrayt);

        return Arrays.equals(arrays,arrayt);
    }
}
